﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Universitario.DAO;
using System.Collections;

namespace Universitario
{
    public partial class AlunoRegister : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

            if (!IsPostBack)
            {
                ddpCurso.DataSource = CursoGraduacaoDAO.getAll();
                ddpCurso.DataBind();
            }
        }


        protected void btCadastrar_Click(object sender, EventArgs e)
        {
            Aluno aluno = new Aluno();
            Usuario usuario = new Usuario();

            usuario.nome = TxtNome.Text;
            usuario.senha = TxtPass.Text;
            usuario.sobrenome = TxtSobrenome.Text;
            usuario.cpf = TxtCpf.Text;
            usuario.data_cadastro = DateTime.Now;

            aluno.Usuario = usuario;
            aluno.universidade = "UFRJ";

            try
            {
                usuario.data_nascimento = DateTime.Parse(TxtDataNasc.Text);
            } catch( Exception)
            {
                usuario.data_nascimento = DateTime.MinValue;
            }

            Curso_Graduacao curso = new Curso_Graduacao();
            curso = CursoGraduacaoDAO.SelectByNome(ddpCurso.SelectedValue);
                        
            aluno.curso_id = curso.id;
            try
            {
                aluno.data_admissao = DateTime.Parse( TxtAdmissao.Text );
            }
            catch (Exception)
            {
                aluno.data_admissao = DateTime.MinValue;
            }

            try
            {
                aluno.data_formatura = DateTime.Parse(TxtFormatura.Text);
            }
            catch (Exception)
            {
                aluno.data_formatura = DateTime.MinValue;
            }

            try
            {

                MensagemErro.Style.Add("font-weight", "bold");

                AlunoDAO.Insert(aluno);
                MensagemErro.Style.Add("color", "#00ff00");
            }
            catch (ArgumentException)
            {
                ArrayList erros = AlunoDAO.erros;
                String mensagem = "<ul class=\"errorList\">";
                
                foreach( KeyValuePair<String, String> erro in erros )
                {
                    mensagem += "<li>" + erro.Value + "</li>";

                    Control c = Aluno.FindControl(erro.Key);
                    WebControl wc = (WebControl)c;
                    wc.Style.Add("border-color", "#ff0000");

                }

                mensagem += "</ul>";

                MensagemErro.InnerHtml = mensagem;

                MensagemErro.Style.Add("color", "#ff0000");
            }
            
        }
    }
}